﻿using Runtime.Services.Battle.Entity;

namespace Runtime.Models {

    /// <summary>
    /// 目标数据集
    /// </summary>
    public interface IDFR_ReadOnlyBattleAttackTargetDictionaryModelBase : IDFR_ReadOnlyDictionaryModel<DFR_BattleEntityInstanceID, IDFR_BattleAttackTargetModelBase> {

        new IDFR_BattleAttackTargetDictionaryModelBase AsReadWrite();
    }

    /// <summary>
    /// 目标数据集
    /// </summary>
    public interface IDFR_BattleAttackTargetDictionaryModelBase : IDFR_ReadOnlyBattleAttackTargetDictionaryModelBase, IDFR_DictionaryModel<DFR_BattleEntityInstanceID, IDFR_BattleAttackTargetModelBase> {
    }

    [Implement(typeof(IDFR_ReadOnlyBattleAttackTargetDictionaryModelBase))]
    [Implement(typeof(IDFR_ReadOnlyDictionaryModel<DFR_BattleEntityInstanceID, IDFR_BattleAttackTargetModelBase>))]
    [Implement(typeof(IDFR_BattleAttackTargetDictionaryModelBase))]
    [Implement(typeof(IDFR_DictionaryModel<DFR_BattleEntityInstanceID, IDFR_BattleAttackTargetModelBase>))]
    internal sealed class DFR_BattleAttackTargetDictionaryModelBase : DFR_DictionaryModel<DFR_BattleEntityInstanceID, IDFR_BattleAttackTargetModelBase>,
        IDFR_ReadOnlyBattleAttackTargetDictionaryModelBase, IDFR_BattleAttackTargetDictionaryModelBase {

        public new IDFR_BattleAttackTargetDictionaryModelBase AsReadWrite() => this;
    }
}